#include "widget.h"
#include "ui_widget.h"

#include <thread>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
//    int value = ui->lcdNumber->intValue();
//    while(true){
//        //先休眠1S-->Sleep是Windows的API,需要包含"Windows.h"头文件才能使用的(vs才能直接使用)
//        //C++11引入sleep_for
//        std::this_thread::sleep_for(std::chrono::seconds(1));
//        if(value <= 0)
//        {
//            break;
//        }
//        ui->lcdNumber->display(value-1);
//    }

    //要指定线程的入口函数(回调函数)是什么？-->可通过lambda表达式去写
    std::thread t([this](){
        int value = this->ui->lcdNumber->intValue();
        while(true){
            std::this_thread::sleep_for(std::chrono::seconds(1));
            if(value <= 0){
                break;
            }
            ui->lcdNumber->display(value -1);
        }
    });
    //Qt规定只有主线程才能对界面进行修改
}

Widget::~Widget()
{
    delete ui;
}

